home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 001-025 / disk_013 / mandel.bas < prev    next >
BASIC Source File  |  1992-05-06  |  3KB  |  52 lines

  1. 10    ' Mandel.Bas - (C) 1985 Kevin A. Bjorke
  2. 20    ' 25724 Salceda Road, Valencia CA 91355   CIS74756,464
  3. 30    '
  4. 40    lmt%=127:ht%=150:wd%=150:depth%=4:acorn=-2.:bcorn=-1.25:sidex=2.5:sidey=2.5
  5. 50    cl%=2^depth%:n%=(lmt%+1)/cl%:e$=chr$(27)
  6. 60    gx=sidex/wd%:gy=sidey/ht%
  7. 70    scnclr:drawmode 1:peno 1:pena 4:penb 2:graphic(1)
  8. 80    ? at(wd%+16,80);inverse(1);" MANDEL ";:penb 0:pena 6:? at(wd%+16,89);"by";at(wd%+16,98);"Kevin Bjorke"
  9. 90    pena 1:? at(wd%+3,8);acorn;at(wd%+3,ht%);acorn+sidey;at(0,ht%+10);bcorn;at(wd%-24,ht%+10);bcorn+sidex;
  10. 100   ? at(wd%+12,32);"<ESC> to End";at (wd%+12,50);"Left Button";at(wd%+20,58);"to Zoom."
  11. 110   graphic(0):box (0,0;wd%+1,ht%+1),1
  12. 115   ac=acorn:y%=1
  13. 120   bc=bcorn:x%=1
  14. 130   az=0:bz=0:ct%=0
  15. 140   while (ct%<lmt%) and (sqr(az*az+bz*bz)<2.)
  16. 150   tz=az*az-bz*bz+ac:bz=2*az*bz+bc:az=tz:ct%=ct%+1:wend
  17. 160   ask mouse p%,q%,b%:if b%=4 then goto 280
  18. 170   get a$:if a$=e$ then end
  19. 180   draw (x%,y%),ct%\n%:bc=bc+gx:x%=x%+1:if x%<=wd% then 130
  20. 190   ac=ac+gy:y%=y%+1:if y%<=ht% then 120
  21. 200   goto 115
  22. 230   '
  23. 240   ask mouse p%,q%,b%:if b%=4 then 240 else return
  24. 250   ask mouse p%,q%,b%:if b%=0 or p%<1 or q%<1 or p%>wd% or q%>ht% then 240 else return
  25. 260   gosub 240:gosub 250:return
  26. 270   '
  27. 280   gosub 260:s%=p%:t%=q%:drawmode 2:gosub 240
  28. 290   ask mouse p%,q%,b%:if b%=4 then 310
  29. 300   for m%=1 to 2:box(s%,t%;p%,q%),0:next m%:goto 290
  30. 310   if p%<1 or p%>wd% or q%<1 or q%>ht% then 290
  31. 320   box(s%,t%;p%,q%),0:drawmode 2
  32. 330   bcorn=bcorn+(s%-1)*gx:acorn=acorn+(t%-1)*gy
  33. 340   sidex=(p%-s%)*gx:sidey=(q%-t%)*gy:if sidex=0. then sidex=gx/2
  34. 350   if sidey=0. then sidey=gy/2
  35. 360   goto 60
  36. 370   '
  37. 380   ' Mandel.Bas allows you to view slices of the Mandelbrot set, a
  38. 390   '   fractal construct of complex number operations. Each point in
  39. 400   '   the displayed image is the representation of a complex point
  40. 410   '   "c" -- the imaginary part as horizontal, the real vertical.
  41. 420   ' Mandel.Bas allows you to use the Amiga's mouse to "Zoom In"
  42. 430   '   on selected pieces of the set -- you can select arbitrary
  43. 440   '   windows at any time.
  44. 450   '
  45. 460   ' Currently, Mandel.Bas is designed to be used with the default
  46. 470   ' number of colors & reso -- changing the values of "depth%"
  47. 480   ' and "wd%", along with an appropriate screen command, can let
  48. 490   ' hi-res junkies get even more colorful pictures, at the price
  49. 500   ' of additional computing time.
  50. 510   '                                 --Kevin Bjorke
  51. 520   ' /* eof */
  52.